Enter the directory of the maca folder on your drive and the name of the tissue you want to analyze.
tissue_of_interest = "Bladder"
Load the requisite packages and some additional helper functions.
library(here)
library(useful)
library(Seurat)
library(dplyr)
library(Matrix)
save_dir = here('00_data_ingest', 'tissue_robj')
# read the metadata to get the plates we want
plate_metadata_filename = here('00_data_ingest', 'facs_raw_data', 'metadata_FACS.csv')
plate_metadata <- read.csv(plate_metadata_filename, sep=",", header = TRUE)
colnames(plate_metadata)[1] <- "plate.barcode"
plate_metadata
Load the plate data. “Bladder” is one of the tissues studied
tissue_plates = filter(plate_metadata, tissue == tissue_of_interest)[,c('plate.barcode','tissue','subtissue','mouse.sex')]
tissue_plates
Load the read count data.
#Load the gene names and set the metadata columns by opening the first file
filename = here('00_data_ingest', 'facs_raw_data', 'FACS', paste0(tissue_of_interest, '-counts.csv'))
raw.data = read.csv(filename, sep=",", row.names=1)
Make a vector of plate barcodes for each cell
plate.barcodes = lapply(colnames(raw.data), function(x) strsplit(strsplit(x, "_")[[1]][1], '.', fixed=TRUE)[[1]][2])
head(plate.barcodes)
[[1]]
[1] "D041914"
[[2]]
[1] "D041914"
[[3]]
[1] "D041914"
[[4]]
[1] "D041914"
[[5]]
[1] "D041914"
[[6]]
[1] "D041914"
Use only the metadata rows corresponding to Bladder plates. Make a plate barcode dataframe to “expand” the per-plate metadata to be per-cell.
rownames(barcode.df) = colnames(raw.data)
colnames(barcode.df) = c('plate.barcode')
head(barcode.df)
plate.barcode
A12.D041914.3_8_M.1.1 "D041914"
B16.D041914.3_8_M.1.1 "D041914"
C18.D041914.3_8_M.1.1 "D041914"
D22.D041914.3_8_M.1.1 "D041914"
F4.D041914.3_8_M.1.1 "D041914"
C19.D041914.3_8_M.1.1 "D041914"
rnames = row.names(barcode.df)
meta.data <- merge(barcode.df, plate_metadata, by='plate.barcode', sort = F)
row.names(meta.data) <- rnames
head(meta.data)
Process the raw data and load it into the Seurat object.
# Find ERCC's, compute the percent ERCC, and drop them from the raw data.
erccs <- grep(pattern = "^ERCC-", x = rownames(x = raw.data), value = TRUE)
percent.ercc <- Matrix::colSums(raw.data[erccs, ])/Matrix::colSums(raw.data)
ercc.index <- grep(pattern = "^ERCC-", x = rownames(x = raw.data), value = FALSE)
raw.data <- raw.data[-ercc.index,]
# Create the Seurat object with all the data
tiss <- CreateSeuratObject(raw.data = raw.data, project = tissue_of_interest,
min.cells = 5, min.genes = 5)
tiss <- AddMetaData(object = tiss, meta.data)
tiss <- AddMetaData(object = tiss, percent.ercc, col.name = "percent.ercc")
# Change default name for sums of counts from nUMI to nReads
colnames(tiss@meta.data)[colnames(tiss@meta.data) == 'nUMI'] <- 'nReads'
# Create metadata columns for annotations and subannotations
tiss@meta.data[,'annotation'] <- NA
tiss@meta.data[,'subannotation'] <- NA
Calculate percent ribosomal genes.
ribo.genes <- grep(pattern = "^Rp[sl][[:digit:]]", x = rownames(x = tiss@data), value = TRUE)
percent.ribo <- Matrix::colSums(tiss@raw.data[ribo.genes, ])/Matrix::colSums(tiss@raw.data)
tiss <- AddMetaData(object = tiss, metadata = percent.ribo, col.name = "percent.ribo")
A sanity check: genes per cell vs reads per cell.
GenePlot(object = tiss, gene1 = "nReads", gene2 = "nGene", use.raw=T)
Filter out cells with few reads and few genes.
tiss <- FilterCells(object = tiss, subset.names = c("nGene", "nReads"),
low.thresholds = c(500, 50000), high.thresholds = c(25000, 2000000))
Normalize the data, then regress out correlation with total reads
tiss <- NormalizeData(object = tiss)
Performing log-normalization
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
**************************************************|
tiss <- ScaleData(object = tiss, vars.to.regress = c("nReads", "percent.ribo","Rn45s"))
[1] "Regressing out nReads" "Regressing out percent.ribo"
[3] "Regressing out Rn45s"
|
| | 0%
|
| | 1%
|
|= | 1%
|
|= | 2%
|
|== | 2%
|
|== | 3%
|
|=== | 4%
|
|==== | 5%
|
|==== | 6%
|
|===== | 6%
|
|===== | 7%
|
|====== | 7%
|
|====== | 8%
|
|======= | 9%
|
|======== | 10%
|
|========= | 11%
|
|========= | 12%
|
|========== | 12%
|
|========== | 13%
|
|=========== | 14%
|
|============ | 15%
|
|============= | 16%
|
|============= | 17%
|
|============== | 17%
|
|============== | 18%
|
|=============== | 19%
|
|================ | 20%
|
|================= | 21%
|
|================= | 22%
|
|================== | 22%
|
|================== | 23%
|
|=================== | 23%
|
|=================== | 24%
|
|==================== | 25%
|
|===================== | 26%
|
|===================== | 27%
|
|====================== | 27%
|
|====================== | 28%
|
|======================= | 28%
|
|======================= | 29%
|
|======================== | 30%
|
|========================= | 31%
|
|========================== | 32%
|
|========================== | 33%
|
|=========================== | 33%
|
|=========================== | 34%
|
|============================ | 35%
|
|============================= | 36%
|
|============================== | 37%
|
|============================== | 38%
|
|=============================== | 38%
|
|=============================== | 39%
|
|================================ | 40%
|
|================================= | 41%
|
|================================== | 42%
|
|================================== | 43%
|
|=================================== | 43%
|
|=================================== | 44%
|
|==================================== | 44%
|
|==================================== | 45%
|
|===================================== | 46%
|
|====================================== | 47%
|
|====================================== | 48%
|
|======================================= | 48%
|
|======================================= | 49%
|
|======================================== | 49%
|
|======================================== | 50%
|
|======================================== | 51%
|
|========================================= | 51%
|
|========================================= | 52%
|
|========================================== | 52%
|
|========================================== | 53%
|
|=========================================== | 54%
|
|============================================ | 55%
|
|============================================ | 56%
|
|============================================= | 56%
|
|============================================= | 57%
|
|============================================== | 57%
|
|============================================== | 58%
|
|=============================================== | 59%
|
|================================================ | 60%
|
|================================================= | 61%
|
|================================================= | 62%
|
|================================================== | 62%
|
|================================================== | 63%
|
|=================================================== | 64%
|
|==================================================== | 65%
|
|===================================================== | 66%
|
|===================================================== | 67%
|
|====================================================== | 67%
|
|====================================================== | 68%
|
|======================================================= | 69%
|
|======================================================== | 70%
|
|========================================================= | 71%
|
|========================================================= | 72%
|
|========================================================== | 72%
|
|========================================================== | 73%
|
|=========================================================== | 73%
|
|=========================================================== | 74%
|
|============================================================ | 75%
|
|============================================================= | 76%
|
|============================================================= | 77%
|
|============================================================== | 77%
|
|============================================================== | 78%
|
|=============================================================== | 78%
|
|=============================================================== | 79%
|
|================================================================ | 80%
|
|================================================================= | 81%
|
|================================================================== | 82%
|
|================================================================== | 83%
|
|=================================================================== | 83%
|
|=================================================================== | 84%
|
|==================================================================== | 85%
|
|===================================================================== | 86%
|
|====================================================================== | 87%
|
|====================================================================== | 88%
|
|======================================================================= | 88%
|
|======================================================================= | 89%
|
|======================================================================== | 90%
|
|========================================================================= | 91%
|
|========================================================================== | 92%
|
|========================================================================== | 93%
|
|=========================================================================== | 93%
|
|=========================================================================== | 94%
|
|============================================================================ | 94%
|
|============================================================================ | 95%
|
|============================================================================= | 96%
|
|============================================================================== | 97%
|
|============================================================================== | 98%
|
|=============================================================================== | 98%
|
|=============================================================================== | 99%
|
|================================================================================| 99%
|
|================================================================================| 100%
[1] "Scaling data matrix"
|
| | 0%
|
|================================================================================| 100%
tiss <- FindVariableGenes(object = tiss, do.plot = TRUE, x.high.cutoff = Inf, y.cutoff = 0.5)
Calculating gene means
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating gene variance to mean ratios
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
**************************************************|
Run Principal Component Analysis.
tiss <- RunPCA(object = tiss, do.print = FALSE)
tiss <- ProjectPCA(object = tiss, do.print = FALSE)
Later on (in FindClusters and TSNE) you will pick a number of principal components to use. This has the effect of keeping the major directions of variation in the data and, ideally, supressing noise. There is no correct answer to the number to use, but a decent rule of thumb is to go until the plot plateaus.
PCElbowPlot(object = tiss)
Choose the number of principal components to use.
# Set number of principal components.
n.pcs = 10
The clustering is performed based on a nearest neighbors graph. Cells that have similar expression will be joined together. The Louvain algorithm looks for groups of cells with high modularity–more connections within the group than between groups. The resolution parameter determines the scale…higher resolution will give more clusters, lower resolution will give fewer.
For the top-level clustering, aim to under-cluster instead of over-cluster. It will be easy to subset groups and further analyze them below.
# Set resolution
res.used <- 1
tiss <- FindClusters(object = tiss, reduction.type = "pca", dims.use = 1:n.pcs,
resolution = res.used, print.output = 0, save.SNN = TRUE)
To visualize
# If cells are too spread out, you can raise the perplexity. If you have few cells, try a lower perplexity (but never less than 10).
tiss <- RunTSNE(object = tiss, dims.use = 1:n.pcs, seed.use = 10, perplexity=30)
# note that you can set do.label=T to help label individual clusters
TSNEPlot(object = tiss, do.label = T)
Check expression of genes of interset.
Dotplots let you see the intensity of exppression and the fraction of cells expressing for each of your genes of interest.
VlnPlot(tiss, genes_to_check)
BuildClusterTree(tiss)
[1] "Finished averaging RNA for cluster 0"
[1] "Finished averaging RNA for cluster 1"
[1] "Finished averaging RNA for cluster 2"
[1] "Finished averaging RNA for cluster 3"
[1] "Finished averaging RNA for cluster 4"
[1] "Finished averaging RNA for cluster 5"
[1] "Finished averaging RNA for cluster 6"
[1] "Finished averaging RNA for cluster 7"
An object of class seurat in project Bladder
16192 genes across 1287 samples.
# Get markers for a particular cluster
cluster0_markers = filter(tiss.markers, cluster == 0)$gene
DotPlot(tiss, genes.plot = cluster0_markers[1:20], plot.legend = T)
How big are the clusters?
table(tiss@ident)
0 1 2 3 4 5 6 7
245 191 170 165 165 156 99 96
Which markers identify a specific cluster?
clust.markers <- FindMarkers(object = tiss, ident.1 = 0, only.pos = TRUE, min.pct = 0.25, thresh.use = 0.25)
| | 0 % ~calculating
|+ | 1 % ~59s
|++ | 2 % ~53s
|++ | 3 % ~51s
|+++ | 4 % ~50s
|+++ | 5 % ~48s
|++++ | 6 % ~48s
|++++ | 7 % ~47s
|+++++ | 8 % ~46s
|+++++ | 9 % ~45s
|++++++ | 10% ~44s
|++++++ | 11% ~43s
|+++++++ | 12% ~42s
|+++++++ | 13% ~42s
|++++++++ | 14% ~41s
|++++++++ | 15% ~40s
|+++++++++ | 16% ~40s
|+++++++++ | 18% ~39s
|++++++++++ | 19% ~39s
|++++++++++ | 20% ~38s
|+++++++++++ | 21% ~38s
|+++++++++++ | 22% ~37s
|++++++++++++ | 23% ~37s
|++++++++++++ | 24% ~36s
|+++++++++++++ | 25% ~35s
|+++++++++++++ | 26% ~35s
|++++++++++++++ | 27% ~34s
|++++++++++++++ | 28% ~34s
|+++++++++++++++ | 29% ~33s
|+++++++++++++++ | 30% ~32s
|++++++++++++++++ | 31% ~32s
|++++++++++++++++ | 32% ~31s
|+++++++++++++++++ | 33% ~31s
|++++++++++++++++++ | 34% ~30s
|++++++++++++++++++ | 35% ~30s
|+++++++++++++++++++ | 36% ~29s
|+++++++++++++++++++ | 37% ~29s
|++++++++++++++++++++ | 38% ~28s
|++++++++++++++++++++ | 39% ~28s
|+++++++++++++++++++++ | 40% ~27s
|+++++++++++++++++++++ | 41% ~27s
|++++++++++++++++++++++ | 42% ~26s
|++++++++++++++++++++++ | 43% ~26s
|+++++++++++++++++++++++ | 44% ~25s
|+++++++++++++++++++++++ | 45% ~25s
|++++++++++++++++++++++++ | 46% ~24s
|++++++++++++++++++++++++ | 47% ~24s
|+++++++++++++++++++++++++ | 48% ~23s
|+++++++++++++++++++++++++ | 49% ~23s
|++++++++++++++++++++++++++ | 51% ~22s
|++++++++++++++++++++++++++ | 52% ~22s
|+++++++++++++++++++++++++++ | 53% ~21s
|+++++++++++++++++++++++++++ | 54% ~21s
|++++++++++++++++++++++++++++ | 55% ~20s
|++++++++++++++++++++++++++++ | 56% ~20s
|+++++++++++++++++++++++++++++ | 57% ~19s
|+++++++++++++++++++++++++++++ | 58% ~19s
|++++++++++++++++++++++++++++++ | 59% ~18s
|++++++++++++++++++++++++++++++ | 60% ~18s
|+++++++++++++++++++++++++++++++ | 61% ~17s
|+++++++++++++++++++++++++++++++ | 62% ~17s
|++++++++++++++++++++++++++++++++ | 63% ~16s
|++++++++++++++++++++++++++++++++ | 64% ~16s
|+++++++++++++++++++++++++++++++++ | 65% ~16s
|+++++++++++++++++++++++++++++++++ | 66% ~15s
|++++++++++++++++++++++++++++++++++ | 67% ~15s
|+++++++++++++++++++++++++++++++++++ | 68% ~14s
|+++++++++++++++++++++++++++++++++++ | 69% ~14s
|++++++++++++++++++++++++++++++++++++ | 70% ~13s
|++++++++++++++++++++++++++++++++++++ | 71% ~13s
|+++++++++++++++++++++++++++++++++++++ | 72% ~12s
|+++++++++++++++++++++++++++++++++++++ | 73% ~12s
|++++++++++++++++++++++++++++++++++++++ | 74% ~11s
|++++++++++++++++++++++++++++++++++++++ | 75% ~11s
|+++++++++++++++++++++++++++++++++++++++ | 76% ~10s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~10s
|++++++++++++++++++++++++++++++++++++++++ | 78% ~10s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~09s
|+++++++++++++++++++++++++++++++++++++++++ | 80% ~09s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~08s
|++++++++++++++++++++++++++++++++++++++++++ | 82% ~08s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~07s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~07s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~06s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~06s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~05s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 44s
print(x = head(x= clust.markers, n = 10))
You can also compute all markers for all clusters at once. This may take some time.
#tiss.markers <- FindAllMarkers(object = tiss, only.pos = TRUE, min.pct = 0.25, thresh.use = 0.25)
tiss.markers <- FindAllMarkers(object = tiss, only.pos = TRUE, min.pct = 0.25, thresh.use = 0.25)
| | 0 % ~calculating
|+ | 1 % ~39s
|++ | 2 % ~38s
|++ | 3 % ~37s
|+++ | 4 % ~37s
|+++ | 5 % ~37s
|++++ | 6 % ~36s
|++++ | 7 % ~35s
|+++++ | 8 % ~35s
|+++++ | 9 % ~35s
|++++++ | 10% ~35s
|++++++ | 11% ~34s
|+++++++ | 12% ~34s
|+++++++ | 13% ~34s
|++++++++ | 14% ~33s
|++++++++ | 15% ~33s
|+++++++++ | 16% ~33s
|+++++++++ | 17% ~33s
|++++++++++ | 18% ~32s
|++++++++++ | 19% ~32s
|+++++++++++ | 20% ~31s
|+++++++++++ | 21% ~31s
|++++++++++++ | 22% ~30s
|++++++++++++ | 23% ~30s
|+++++++++++++ | 24% ~29s
|+++++++++++++ | 25% ~29s
|++++++++++++++ | 26% ~28s
|++++++++++++++ | 27% ~28s
|+++++++++++++++ | 28% ~27s
|+++++++++++++++ | 29% ~27s
|++++++++++++++++ | 30% ~27s
|++++++++++++++++ | 31% ~26s
|+++++++++++++++++ | 32% ~26s
|+++++++++++++++++ | 33% ~26s
|++++++++++++++++++ | 34% ~25s
|++++++++++++++++++ | 35% ~25s
|+++++++++++++++++++ | 36% ~25s
|+++++++++++++++++++ | 37% ~24s
|++++++++++++++++++++ | 38% ~24s
|++++++++++++++++++++ | 39% ~23s
|+++++++++++++++++++++ | 40% ~23s
|+++++++++++++++++++++ | 41% ~22s
|++++++++++++++++++++++ | 42% ~22s
|++++++++++++++++++++++ | 43% ~22s
|+++++++++++++++++++++++ | 44% ~21s
|+++++++++++++++++++++++ | 45% ~21s
|++++++++++++++++++++++++ | 46% ~20s
|++++++++++++++++++++++++ | 47% ~20s
|+++++++++++++++++++++++++ | 48% ~20s
|+++++++++++++++++++++++++ | 49% ~19s
|++++++++++++++++++++++++++ | 51% ~19s
|++++++++++++++++++++++++++ | 52% ~18s
|+++++++++++++++++++++++++++ | 53% ~18s
|+++++++++++++++++++++++++++ | 54% ~18s
|++++++++++++++++++++++++++++ | 55% ~17s
|++++++++++++++++++++++++++++ | 56% ~17s
|+++++++++++++++++++++++++++++ | 57% ~16s
|+++++++++++++++++++++++++++++ | 58% ~16s
|++++++++++++++++++++++++++++++ | 59% ~16s
|++++++++++++++++++++++++++++++ | 60% ~15s
|+++++++++++++++++++++++++++++++ | 61% ~15s
|+++++++++++++++++++++++++++++++ | 62% ~14s
|++++++++++++++++++++++++++++++++ | 63% ~14s
|++++++++++++++++++++++++++++++++ | 64% ~14s
|+++++++++++++++++++++++++++++++++ | 65% ~13s
|+++++++++++++++++++++++++++++++++ | 66% ~13s
|++++++++++++++++++++++++++++++++++ | 67% ~13s
|++++++++++++++++++++++++++++++++++ | 68% ~12s
|+++++++++++++++++++++++++++++++++++ | 69% ~12s
|+++++++++++++++++++++++++++++++++++ | 70% ~11s
|++++++++++++++++++++++++++++++++++++ | 71% ~11s
|++++++++++++++++++++++++++++++++++++ | 72% ~11s
|+++++++++++++++++++++++++++++++++++++ | 73% ~10s
|+++++++++++++++++++++++++++++++++++++ | 74% ~10s
|++++++++++++++++++++++++++++++++++++++ | 75% ~10s
|++++++++++++++++++++++++++++++++++++++ | 76% ~09s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~09s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~08s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~08s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~08s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~07s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~07s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~06s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~06s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~06s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~05s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~05s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 38s
| | 0 % ~calculating
|+ | 1 % ~45s
|++ | 2 % ~46s
|++ | 3 % ~46s
|+++ | 4 % ~45s
|+++ | 5 % ~44s
|++++ | 6 % ~42s
|++++ | 7 % ~41s
|+++++ | 8 % ~41s
|+++++ | 9 % ~40s
|++++++ | 10% ~39s
|++++++ | 11% ~39s
|+++++++ | 12% ~38s
|+++++++ | 13% ~37s
|++++++++ | 14% ~37s
|++++++++ | 15% ~36s
|+++++++++ | 16% ~36s
|+++++++++ | 17% ~36s
|++++++++++ | 18% ~35s
|++++++++++ | 19% ~35s
|+++++++++++ | 20% ~34s
|+++++++++++ | 21% ~34s
|++++++++++++ | 22% ~33s
|++++++++++++ | 23% ~33s
|+++++++++++++ | 24% ~32s
|+++++++++++++ | 25% ~32s
|++++++++++++++ | 26% ~31s
|++++++++++++++ | 27% ~31s
|+++++++++++++++ | 28% ~30s
|+++++++++++++++ | 29% ~30s
|++++++++++++++++ | 30% ~30s
|++++++++++++++++ | 31% ~29s
|+++++++++++++++++ | 32% ~29s
|+++++++++++++++++ | 33% ~28s
|++++++++++++++++++ | 34% ~28s
|++++++++++++++++++ | 35% ~27s
|+++++++++++++++++++ | 36% ~27s
|+++++++++++++++++++ | 37% ~26s
|++++++++++++++++++++ | 38% ~26s
|++++++++++++++++++++ | 39% ~26s
|+++++++++++++++++++++ | 40% ~25s
|+++++++++++++++++++++ | 41% ~25s
|++++++++++++++++++++++ | 42% ~24s
|++++++++++++++++++++++ | 43% ~24s
|+++++++++++++++++++++++ | 44% ~23s
|+++++++++++++++++++++++ | 45% ~23s
|++++++++++++++++++++++++ | 46% ~23s
|++++++++++++++++++++++++ | 47% ~22s
|+++++++++++++++++++++++++ | 48% ~22s
|+++++++++++++++++++++++++ | 49% ~21s
|++++++++++++++++++++++++++ | 51% ~21s
|++++++++++++++++++++++++++ | 52% ~20s
|+++++++++++++++++++++++++++ | 53% ~20s
|+++++++++++++++++++++++++++ | 54% ~20s
|++++++++++++++++++++++++++++ | 55% ~19s
|++++++++++++++++++++++++++++ | 56% ~19s
|+++++++++++++++++++++++++++++ | 57% ~18s
|+++++++++++++++++++++++++++++ | 58% ~18s
|++++++++++++++++++++++++++++++ | 59% ~17s
|++++++++++++++++++++++++++++++ | 60% ~17s
|+++++++++++++++++++++++++++++++ | 61% ~17s
|+++++++++++++++++++++++++++++++ | 62% ~16s
|++++++++++++++++++++++++++++++++ | 63% ~16s
|++++++++++++++++++++++++++++++++ | 64% ~15s
|+++++++++++++++++++++++++++++++++ | 65% ~15s
|+++++++++++++++++++++++++++++++++ | 66% ~14s
|++++++++++++++++++++++++++++++++++ | 67% ~14s
|++++++++++++++++++++++++++++++++++ | 68% ~14s
|+++++++++++++++++++++++++++++++++++ | 69% ~13s
|+++++++++++++++++++++++++++++++++++ | 70% ~13s
|++++++++++++++++++++++++++++++++++++ | 71% ~12s
|++++++++++++++++++++++++++++++++++++ | 72% ~12s
|+++++++++++++++++++++++++++++++++++++ | 73% ~12s
|+++++++++++++++++++++++++++++++++++++ | 74% ~11s
|++++++++++++++++++++++++++++++++++++++ | 75% ~11s
|++++++++++++++++++++++++++++++++++++++ | 76% ~10s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~10s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~09s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~09s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~09s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~08s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~08s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~07s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~07s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~06s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~06s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~06s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 42s
| | 0 % ~calculating
|+ | 1 % ~32s
|++ | 2 % ~32s
|++ | 3 % ~32s
|+++ | 4 % ~31s
|+++ | 5 % ~31s
|++++ | 6 % ~31s
|++++ | 7 % ~30s
|+++++ | 9 % ~30s
|+++++ | 10% ~30s
|++++++ | 11% ~30s
|++++++ | 12% ~30s
|+++++++ | 13% ~30s
|+++++++ | 14% ~29s
|++++++++ | 15% ~29s
|++++++++ | 16% ~29s
|+++++++++ | 17% ~28s
|++++++++++ | 18% ~28s
|++++++++++ | 19% ~28s
|+++++++++++ | 20% ~27s
|+++++++++++ | 21% ~27s
|++++++++++++ | 22% ~27s
|++++++++++++ | 23% ~26s
|+++++++++++++ | 24% ~26s
|+++++++++++++ | 26% ~26s
|++++++++++++++ | 27% ~25s
|++++++++++++++ | 28% ~25s
|+++++++++++++++ | 29% ~25s
|+++++++++++++++ | 30% ~24s
|++++++++++++++++ | 31% ~24s
|++++++++++++++++ | 32% ~24s
|+++++++++++++++++ | 33% ~23s
|++++++++++++++++++ | 34% ~23s
|++++++++++++++++++ | 35% ~23s
|+++++++++++++++++++ | 36% ~22s
|+++++++++++++++++++ | 37% ~22s
|++++++++++++++++++++ | 38% ~21s
|++++++++++++++++++++ | 39% ~21s
|+++++++++++++++++++++ | 40% ~21s
|+++++++++++++++++++++ | 41% ~20s
|++++++++++++++++++++++ | 43% ~20s
|++++++++++++++++++++++ | 44% ~20s
|+++++++++++++++++++++++ | 45% ~19s
|+++++++++++++++++++++++ | 46% ~19s
|++++++++++++++++++++++++ | 47% ~18s
|++++++++++++++++++++++++ | 48% ~18s
|+++++++++++++++++++++++++ | 49% ~18s
|+++++++++++++++++++++++++ | 50% ~17s
|++++++++++++++++++++++++++ | 51% ~17s
|+++++++++++++++++++++++++++ | 52% ~17s
|+++++++++++++++++++++++++++ | 53% ~16s
|++++++++++++++++++++++++++++ | 54% ~16s
|++++++++++++++++++++++++++++ | 55% ~15s
|+++++++++++++++++++++++++++++ | 56% ~15s
|+++++++++++++++++++++++++++++ | 57% ~15s
|++++++++++++++++++++++++++++++ | 59% ~14s
|++++++++++++++++++++++++++++++ | 60% ~14s
|+++++++++++++++++++++++++++++++ | 61% ~14s
|+++++++++++++++++++++++++++++++ | 62% ~13s
|++++++++++++++++++++++++++++++++ | 63% ~13s
|++++++++++++++++++++++++++++++++ | 64% ~12s
|+++++++++++++++++++++++++++++++++ | 65% ~12s
|+++++++++++++++++++++++++++++++++ | 66% ~12s
|++++++++++++++++++++++++++++++++++ | 67% ~11s
|+++++++++++++++++++++++++++++++++++ | 68% ~11s
|+++++++++++++++++++++++++++++++++++ | 69% ~11s
|++++++++++++++++++++++++++++++++++++ | 70% ~10s
|++++++++++++++++++++++++++++++++++++ | 71% ~10s
|+++++++++++++++++++++++++++++++++++++ | 72% ~09s
|+++++++++++++++++++++++++++++++++++++ | 73% ~09s
|++++++++++++++++++++++++++++++++++++++ | 74% ~09s
|++++++++++++++++++++++++++++++++++++++ | 76% ~08s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~08s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~08s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~07s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~07s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~07s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~06s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~06s
|+++++++++++++++++++++++++++++++++++++++++++ | 84% ~05s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~05s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~05s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 88% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 90% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 34s
| | 0 % ~calculating
|+ | 1 % ~01m 16s
|++ | 2 % ~01m 02s
|++ | 3 % ~58s
|+++ | 4 % ~60s
|+++ | 5 % ~57s
|++++ | 6 % ~54s
|++++ | 7 % ~51s
|+++++ | 8 % ~49s
|+++++ | 9 % ~47s
|++++++ | 11% ~45s
|++++++ | 12% ~44s
|+++++++ | 13% ~42s
|+++++++ | 14% ~41s
|++++++++ | 15% ~40s
|++++++++ | 16% ~41s
|+++++++++ | 17% ~40s
|+++++++++ | 18% ~40s
|++++++++++ | 19% ~39s
|++++++++++ | 20% ~38s
|+++++++++++ | 21% ~38s
|++++++++++++ | 22% ~39s
|++++++++++++ | 23% ~39s
|+++++++++++++ | 24% ~39s
|+++++++++++++ | 25% ~40s
|++++++++++++++ | 26% ~39s
|++++++++++++++ | 27% ~38s
|+++++++++++++++ | 28% ~37s
|+++++++++++++++ | 29% ~37s
|++++++++++++++++ | 31% ~36s
|++++++++++++++++ | 32% ~35s
|+++++++++++++++++ | 33% ~34s
|+++++++++++++++++ | 34% ~33s
|++++++++++++++++++ | 35% ~32s
|++++++++++++++++++ | 36% ~32s
|+++++++++++++++++++ | 37% ~31s
|+++++++++++++++++++ | 38% ~30s
|++++++++++++++++++++ | 39% ~30s
|++++++++++++++++++++ | 40% ~29s
|+++++++++++++++++++++ | 41% ~28s
|++++++++++++++++++++++ | 42% ~28s
|++++++++++++++++++++++ | 43% ~27s
|+++++++++++++++++++++++ | 44% ~26s
|+++++++++++++++++++++++ | 45% ~26s
|++++++++++++++++++++++++ | 46% ~25s
|++++++++++++++++++++++++ | 47% ~24s
|+++++++++++++++++++++++++ | 48% ~24s
|+++++++++++++++++++++++++ | 49% ~24s
|++++++++++++++++++++++++++ | 51% ~23s
|++++++++++++++++++++++++++ | 52% ~23s
|+++++++++++++++++++++++++++ | 53% ~22s
|+++++++++++++++++++++++++++ | 54% ~21s
|++++++++++++++++++++++++++++ | 55% ~21s
|++++++++++++++++++++++++++++ | 56% ~20s
|+++++++++++++++++++++++++++++ | 57% ~20s
|+++++++++++++++++++++++++++++ | 58% ~19s
|++++++++++++++++++++++++++++++ | 59% ~19s
|++++++++++++++++++++++++++++++ | 60% ~18s
|+++++++++++++++++++++++++++++++ | 61% ~18s
|++++++++++++++++++++++++++++++++ | 62% ~17s
|++++++++++++++++++++++++++++++++ | 63% ~17s
|+++++++++++++++++++++++++++++++++ | 64% ~16s
|+++++++++++++++++++++++++++++++++ | 65% ~16s
|++++++++++++++++++++++++++++++++++ | 66% ~15s
|++++++++++++++++++++++++++++++++++ | 67% ~15s
|+++++++++++++++++++++++++++++++++++ | 68% ~14s
|+++++++++++++++++++++++++++++++++++ | 69% ~14s
|++++++++++++++++++++++++++++++++++++ | 71% ~13s
|++++++++++++++++++++++++++++++++++++ | 72% ~13s
|+++++++++++++++++++++++++++++++++++++ | 73% ~12s
|+++++++++++++++++++++++++++++++++++++ | 74% ~12s
|++++++++++++++++++++++++++++++++++++++ | 75% ~11s
|++++++++++++++++++++++++++++++++++++++ | 76% ~11s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~10s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~10s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~09s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~09s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~08s
|++++++++++++++++++++++++++++++++++++++++++ | 82% ~08s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~07s
|+++++++++++++++++++++++++++++++++++++++++++ | 84% ~07s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~06s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~06s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++ | 88% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~05s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 42s
| | 0 % ~calculating
|+ | 1 % ~54s
|++ | 2 % ~49s
|++ | 3 % ~49s
|+++ | 4 % ~48s
|+++ | 5 % ~47s
|++++ | 6 % ~47s
|++++ | 7 % ~46s
|+++++ | 8 % ~45s
|+++++ | 9 % ~44s
|++++++ | 10% ~43s
|++++++ | 11% ~44s
|+++++++ | 12% ~44s
|+++++++ | 13% ~44s
|++++++++ | 14% ~43s
|++++++++ | 15% ~43s
|+++++++++ | 16% ~42s
|+++++++++ | 17% ~41s
|++++++++++ | 18% ~41s
|++++++++++ | 19% ~40s
|+++++++++++ | 20% ~39s
|+++++++++++ | 21% ~39s
|++++++++++++ | 22% ~38s
|++++++++++++ | 23% ~37s
|+++++++++++++ | 24% ~37s
|+++++++++++++ | 26% ~36s
|++++++++++++++ | 27% ~36s
|++++++++++++++ | 28% ~35s
|+++++++++++++++ | 29% ~34s
|+++++++++++++++ | 30% ~34s
|++++++++++++++++ | 31% ~33s
|++++++++++++++++ | 32% ~33s
|+++++++++++++++++ | 33% ~32s
|+++++++++++++++++ | 34% ~32s
|++++++++++++++++++ | 35% ~31s
|++++++++++++++++++ | 36% ~31s
|+++++++++++++++++++ | 37% ~30s
|+++++++++++++++++++ | 38% ~30s
|++++++++++++++++++++ | 39% ~29s
|++++++++++++++++++++ | 40% ~29s
|+++++++++++++++++++++ | 41% ~28s
|+++++++++++++++++++++ | 42% ~28s
|++++++++++++++++++++++ | 43% ~27s
|++++++++++++++++++++++ | 44% ~27s
|+++++++++++++++++++++++ | 45% ~26s
|+++++++++++++++++++++++ | 46% ~26s
|++++++++++++++++++++++++ | 47% ~25s
|++++++++++++++++++++++++ | 48% ~25s
|+++++++++++++++++++++++++ | 49% ~24s
|+++++++++++++++++++++++++ | 50% ~24s
|++++++++++++++++++++++++++ | 51% ~23s
|+++++++++++++++++++++++++++ | 52% ~23s
|+++++++++++++++++++++++++++ | 53% ~22s
|++++++++++++++++++++++++++++ | 54% ~22s
|++++++++++++++++++++++++++++ | 55% ~21s
|+++++++++++++++++++++++++++++ | 56% ~21s
|+++++++++++++++++++++++++++++ | 57% ~20s
|++++++++++++++++++++++++++++++ | 58% ~20s
|++++++++++++++++++++++++++++++ | 59% ~19s
|+++++++++++++++++++++++++++++++ | 60% ~19s
|+++++++++++++++++++++++++++++++ | 61% ~18s
|++++++++++++++++++++++++++++++++ | 62% ~18s
|++++++++++++++++++++++++++++++++ | 63% ~17s
|+++++++++++++++++++++++++++++++++ | 64% ~17s
|+++++++++++++++++++++++++++++++++ | 65% ~16s
|++++++++++++++++++++++++++++++++++ | 66% ~16s
|++++++++++++++++++++++++++++++++++ | 67% ~15s
|+++++++++++++++++++++++++++++++++++ | 68% ~15s
|+++++++++++++++++++++++++++++++++++ | 69% ~14s
|++++++++++++++++++++++++++++++++++++ | 70% ~14s
|++++++++++++++++++++++++++++++++++++ | 71% ~13s
|+++++++++++++++++++++++++++++++++++++ | 72% ~13s
|+++++++++++++++++++++++++++++++++++++ | 73% ~12s
|++++++++++++++++++++++++++++++++++++++ | 74% ~12s
|++++++++++++++++++++++++++++++++++++++ | 76% ~11s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~11s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~10s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~10s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~09s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~09s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~08s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~08s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~08s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~07s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~07s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~06s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~06s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~05s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 46s
| | 0 % ~calculating
|+ | 1 % ~37s
|++ | 2 % ~37s
|++ | 3 % ~37s
|+++ | 4 % ~39s
|+++ | 5 % ~38s
|++++ | 6 % ~38s
|++++ | 7 % ~37s
|+++++ | 8 % ~36s
|+++++ | 9 % ~36s
|++++++ | 11% ~35s
|++++++ | 12% ~35s
|+++++++ | 13% ~35s
|+++++++ | 14% ~34s
|++++++++ | 15% ~34s
|++++++++ | 16% ~33s
|+++++++++ | 17% ~33s
|+++++++++ | 18% ~33s
|++++++++++ | 19% ~32s
|++++++++++ | 20% ~32s
|+++++++++++ | 21% ~31s
|++++++++++++ | 22% ~31s
|++++++++++++ | 23% ~30s
|+++++++++++++ | 24% ~30s
|+++++++++++++ | 25% ~30s
|++++++++++++++ | 26% ~29s
|++++++++++++++ | 27% ~29s
|+++++++++++++++ | 28% ~28s
|+++++++++++++++ | 29% ~28s
|++++++++++++++++ | 31% ~27s
|++++++++++++++++ | 32% ~27s
|+++++++++++++++++ | 33% ~27s
|+++++++++++++++++ | 34% ~26s
|++++++++++++++++++ | 35% ~26s
|++++++++++++++++++ | 36% ~25s
|+++++++++++++++++++ | 37% ~25s
|+++++++++++++++++++ | 38% ~31s
|++++++++++++++++++++ | 39% ~30s
|++++++++++++++++++++ | 40% ~30s
|+++++++++++++++++++++ | 41% ~29s
|++++++++++++++++++++++ | 42% ~28s
|++++++++++++++++++++++ | 43% ~28s
|+++++++++++++++++++++++ | 44% ~27s
|+++++++++++++++++++++++ | 45% ~27s
|++++++++++++++++++++++++ | 46% ~26s
|++++++++++++++++++++++++ | 47% ~25s
|+++++++++++++++++++++++++ | 48% ~25s
|+++++++++++++++++++++++++ | 49% ~24s
|++++++++++++++++++++++++++ | 51% ~24s
|++++++++++++++++++++++++++ | 52% ~23s
|+++++++++++++++++++++++++++ | 53% ~22s
|+++++++++++++++++++++++++++ | 54% ~22s
|++++++++++++++++++++++++++++ | 55% ~21s
|++++++++++++++++++++++++++++ | 56% ~21s
|+++++++++++++++++++++++++++++ | 57% ~20s
|+++++++++++++++++++++++++++++ | 58% ~20s
|++++++++++++++++++++++++++++++ | 59% ~19s
|++++++++++++++++++++++++++++++ | 60% ~19s
|+++++++++++++++++++++++++++++++ | 61% ~18s
|++++++++++++++++++++++++++++++++ | 62% ~18s
|++++++++++++++++++++++++++++++++ | 63% ~17s
|+++++++++++++++++++++++++++++++++ | 64% ~17s
|+++++++++++++++++++++++++++++++++ | 65% ~16s
|++++++++++++++++++++++++++++++++++ | 66% ~16s
|++++++++++++++++++++++++++++++++++ | 67% ~15s
|+++++++++++++++++++++++++++++++++++ | 68% ~15s
|+++++++++++++++++++++++++++++++++++ | 69% ~14s
|++++++++++++++++++++++++++++++++++++ | 71% ~14s
|++++++++++++++++++++++++++++++++++++ | 72% ~13s
|+++++++++++++++++++++++++++++++++++++ | 73% ~13s
|+++++++++++++++++++++++++++++++++++++ | 74% ~12s
|++++++++++++++++++++++++++++++++++++++ | 75% ~12s
|++++++++++++++++++++++++++++++++++++++ | 76% ~11s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~11s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~10s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~10s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~09s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~09s
|++++++++++++++++++++++++++++++++++++++++++ | 82% ~08s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~08s
|+++++++++++++++++++++++++++++++++++++++++++ | 84% ~07s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~07s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~06s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~06s
|+++++++++++++++++++++++++++++++++++++++++++++ | 88% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~05s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 44s
| | 0 % ~calculating
|+ | 1 % ~40s
|+ | 2 % ~41s
|++ | 3 % ~40s
|++ | 4 % ~40s
|+++ | 5 % ~40s
|+++ | 6 % ~40s
|++++ | 7 % ~39s
|++++ | 8 % ~39s
|+++++ | 9 % ~39s
|+++++ | 10% ~38s
|++++++ | 11% ~38s
|++++++ | 12% ~38s
|+++++++ | 13% ~37s
|+++++++ | 14% ~37s
|++++++++ | 15% ~36s
|++++++++ | 16% ~36s
|+++++++++ | 17% ~35s
|+++++++++ | 18% ~35s
|++++++++++ | 19% ~35s
|++++++++++ | 20% ~34s
|+++++++++++ | 21% ~34s
|+++++++++++ | 22% ~33s
|++++++++++++ | 23% ~33s
|++++++++++++ | 24% ~32s
|+++++++++++++ | 25% ~32s
|+++++++++++++ | 26% ~32s
|++++++++++++++ | 27% ~31s
|++++++++++++++ | 28% ~31s
|+++++++++++++++ | 29% ~30s
|+++++++++++++++ | 30% ~30s
|++++++++++++++++ | 31% ~29s
|++++++++++++++++ | 32% ~29s
|+++++++++++++++++ | 33% ~28s
|+++++++++++++++++ | 34% ~28s
|++++++++++++++++++ | 35% ~28s
|++++++++++++++++++ | 36% ~27s
|+++++++++++++++++++ | 37% ~27s
|+++++++++++++++++++ | 38% ~26s
|++++++++++++++++++++ | 39% ~26s
|++++++++++++++++++++ | 40% ~26s
|+++++++++++++++++++++ | 41% ~25s
|+++++++++++++++++++++ | 42% ~25s
|++++++++++++++++++++++ | 43% ~24s
|++++++++++++++++++++++ | 44% ~24s
|+++++++++++++++++++++++ | 45% ~23s
|+++++++++++++++++++++++ | 46% ~23s
|++++++++++++++++++++++++ | 47% ~23s
|++++++++++++++++++++++++ | 48% ~22s
|+++++++++++++++++++++++++ | 49% ~22s
|+++++++++++++++++++++++++ | 50% ~21s
|++++++++++++++++++++++++++ | 51% ~21s
|++++++++++++++++++++++++++ | 52% ~20s
|+++++++++++++++++++++++++++ | 53% ~20s
|+++++++++++++++++++++++++++ | 54% ~20s
|++++++++++++++++++++++++++++ | 55% ~19s
|++++++++++++++++++++++++++++ | 56% ~19s
|+++++++++++++++++++++++++++++ | 57% ~18s
|+++++++++++++++++++++++++++++ | 58% ~18s
|++++++++++++++++++++++++++++++ | 59% ~18s
|++++++++++++++++++++++++++++++ | 60% ~17s
|+++++++++++++++++++++++++++++++ | 61% ~17s
|+++++++++++++++++++++++++++++++ | 62% ~16s
|++++++++++++++++++++++++++++++++ | 63% ~16s
|++++++++++++++++++++++++++++++++ | 64% ~16s
|+++++++++++++++++++++++++++++++++ | 65% ~15s
|+++++++++++++++++++++++++++++++++ | 66% ~15s
|++++++++++++++++++++++++++++++++++ | 67% ~14s
|++++++++++++++++++++++++++++++++++ | 68% ~14s
|+++++++++++++++++++++++++++++++++++ | 69% ~13s
|+++++++++++++++++++++++++++++++++++ | 70% ~13s
|++++++++++++++++++++++++++++++++++++ | 71% ~13s
|++++++++++++++++++++++++++++++++++++ | 72% ~12s
|+++++++++++++++++++++++++++++++++++++ | 73% ~12s
|+++++++++++++++++++++++++++++++++++++ | 74% ~11s
|++++++++++++++++++++++++++++++++++++++ | 75% ~11s
|++++++++++++++++++++++++++++++++++++++ | 76% ~10s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~10s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~09s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~09s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~09s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~08s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~08s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~07s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~07s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~06s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~06s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~06s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 43s
| | 0 % ~calculating
|+ | 1 % ~39s
|++ | 2 % ~37s
|++ | 3 % ~37s
|+++ | 4 % ~35s
|+++ | 5 % ~35s
|++++ | 6 % ~34s
|++++ | 7 % ~34s
|+++++ | 8 % ~33s
|+++++ | 9 % ~32s
|++++++ | 10% ~32s
|++++++ | 11% ~31s
|+++++++ | 12% ~31s
|+++++++ | 13% ~30s
|++++++++ | 14% ~30s
|++++++++ | 15% ~29s
|+++++++++ | 16% ~29s
|+++++++++ | 17% ~29s
|++++++++++ | 18% ~28s
|++++++++++ | 19% ~28s
|+++++++++++ | 20% ~28s
|+++++++++++ | 21% ~27s
|++++++++++++ | 22% ~27s
|++++++++++++ | 23% ~26s
|+++++++++++++ | 24% ~26s
|+++++++++++++ | 26% ~26s
|++++++++++++++ | 27% ~25s
|++++++++++++++ | 28% ~25s
|+++++++++++++++ | 29% ~25s
|+++++++++++++++ | 30% ~24s
|++++++++++++++++ | 31% ~24s
|++++++++++++++++ | 32% ~24s
|+++++++++++++++++ | 33% ~23s
|+++++++++++++++++ | 34% ~23s
|++++++++++++++++++ | 35% ~22s
|++++++++++++++++++ | 36% ~22s
|+++++++++++++++++++ | 37% ~22s
|+++++++++++++++++++ | 38% ~21s
|++++++++++++++++++++ | 39% ~21s
|++++++++++++++++++++ | 40% ~21s
|+++++++++++++++++++++ | 41% ~20s
|+++++++++++++++++++++ | 42% ~20s
|++++++++++++++++++++++ | 43% ~20s
|++++++++++++++++++++++ | 44% ~19s
|+++++++++++++++++++++++ | 45% ~19s
|+++++++++++++++++++++++ | 46% ~19s
|++++++++++++++++++++++++ | 47% ~18s
|++++++++++++++++++++++++ | 48% ~18s
|+++++++++++++++++++++++++ | 49% ~17s
|+++++++++++++++++++++++++ | 50% ~17s
|++++++++++++++++++++++++++ | 51% ~17s
|+++++++++++++++++++++++++++ | 52% ~16s
|+++++++++++++++++++++++++++ | 53% ~16s
|++++++++++++++++++++++++++++ | 54% ~16s
|++++++++++++++++++++++++++++ | 55% ~15s
|+++++++++++++++++++++++++++++ | 56% ~15s
|+++++++++++++++++++++++++++++ | 57% ~15s
|++++++++++++++++++++++++++++++ | 58% ~14s
|++++++++++++++++++++++++++++++ | 59% ~14s
|+++++++++++++++++++++++++++++++ | 60% ~13s
|+++++++++++++++++++++++++++++++ | 61% ~13s
|++++++++++++++++++++++++++++++++ | 62% ~13s
|++++++++++++++++++++++++++++++++ | 63% ~12s
|+++++++++++++++++++++++++++++++++ | 64% ~12s
|+++++++++++++++++++++++++++++++++ | 65% ~12s
|++++++++++++++++++++++++++++++++++ | 66% ~11s
|++++++++++++++++++++++++++++++++++ | 67% ~11s
|+++++++++++++++++++++++++++++++++++ | 68% ~11s
|+++++++++++++++++++++++++++++++++++ | 69% ~10s
|++++++++++++++++++++++++++++++++++++ | 70% ~10s
|++++++++++++++++++++++++++++++++++++ | 71% ~10s
|+++++++++++++++++++++++++++++++++++++ | 72% ~09s
|+++++++++++++++++++++++++++++++++++++ | 73% ~09s
|++++++++++++++++++++++++++++++++++++++ | 74% ~09s
|++++++++++++++++++++++++++++++++++++++ | 76% ~08s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~08s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~08s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~07s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~07s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~07s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~06s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~06s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~06s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~05s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~05s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~04s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 34s
Display the top markers you computed above.
#tiss.markers %>% group_by(cluster) %>% top_n(5, avg_diff)
tiss.markers %>% group_by(cluster) %>% top_n(10, avg_diff)
At a coarse level, we can use canonical markers to match the unbiased clustering to known cell types:
0: alpha 1: beta 2: beta 3: exocrine 4: duct 5: delta 6: gamma 7: endothelial 8: immune 9: stellate
# stash current cluster IDs
tiss <- StashIdent(object = tiss, save.name = "cluster.ids")
# enumerate current cluster IDs and the labels for them
cluster.ids <- c(0, 1, 2, 3, 4, 5, 6, 7)
annotation <- c("bladder cell", "bladder cell", "mesenchymal cell", "mesenchymal cell", "mesenchymal cell", "mesenchymal cell", "basal cell of urothelium", "bladder cell")
cell_ontology_id = c("CL:1001319", "CL:1001319", "CL:0008019", "CL:0008019", "CL:0008019", "CL:0008019", "CL:1000486", "CL:1001319")
tiss@meta.data[,'annotation'] <- plyr::mapvalues(x = tiss@meta.data$cluster.ids, from = cluster.ids, to = annotation)
tiss@meta.data[,'cell_ontology_id'] <- plyr::mapvalues(x = tiss@meta.data$cluster.ids, from = cluster.ids, to = cell_ontology_id)
TSNEPlot(object = tiss, do.label = TRUE, pt.size = 0.5, group.by='annotation')
TSNEPlot(object = tiss, do.return = TRUE, group.by = "mouse.sex")
Save the Seurat object
save(tiss, file=paste0(save_dir,"/",tissue_of_interest, "_seurat_tiss.Robj"))
write.csv(tiss@meta.data[,c('annotation','subannotation')],file =paste0(save_dir,"/", tissue_of_interest,"_metadata.csv"))
Color by metadata, like plate barcode, to check for batch effects.
TSNEPlot(object = tiss, do.return = TRUE, group.by = "plate.barcode")
Print a table showing the count of cells in each identity category from each plate.
table(as.character(tiss@ident), as.character(tiss@meta.data$plate.barcode))
B000610 B002764 B002771 D041914 D042253 MAA000487
0 87 2 49 65 17 25
1 2 0 1 1 84 103
2 58 1 10 97 2 2
3 41 0 19 100 3 2
4 1 0 3 1 114 46
5 2 0 3 2 98 51
6 0 0 1 0 24 74
7 6 8 11 50 1 20
save(tiss, file=paste0(save_dir,"/",tissue_of_interest, "_seurat_tiss.Robj"))
# To reload a saved object
# load(file=paste0(rootdir,"/",tissue_of_interest, "_seurat_tiss.Robj")
# Get markers for a particular cluster
for (i in 0:7) {clustermarkers = filter(tiss.markers, cluster == i)$gene
DotPlot(tiss, genes.plot = clustermarkers[1:20], plot.legend = T)}
# Get subtissue, eg, the endocrine clusters
subtiss <- SubsetData(object = tiss, ident.use = c(2),
do.center = F, do.scale = F)
subtiss <- SubsetData(object = tiss, ident.use = c(2), do.center = F, do.scale = F, cells.use = )
subtiss <- NormalizeData(object = subtiss)
Performing log-normalization
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
**************************************************|
subtiss <- ScaleData(object = subtiss, vars.to.regress = c("nReads", "percent.ribo","Rn45s"))
[1] "Regressing out nReads" "Regressing out percent.ribo"
[3] "Regressing out Rn45s"
|
| | 0%
|
| | 1%
|
|= | 1%
|
|= | 2%
|
|== | 2%
|
|== | 3%
|
|=== | 4%
|
|==== | 5%
|
|==== | 6%
|
|===== | 6%
|
|===== | 7%
|
|====== | 7%
|
|====== | 8%
|
|======= | 9%
|
|======== | 10%
|
|========= | 11%
|
|========= | 12%
|
|========== | 12%
|
|========== | 13%
|
|=========== | 14%
|
|============ | 15%
|
|============= | 16%
|
|============= | 17%
|
|============== | 17%
|
|============== | 18%
|
|=============== | 19%
|
|================ | 20%
|
|================= | 21%
|
|================= | 22%
|
|================== | 22%
|
|================== | 23%
|
|=================== | 23%
|
|=================== | 24%
|
|==================== | 25%
|
|===================== | 26%
|
|===================== | 27%
|
|====================== | 27%
|
|====================== | 28%
|
|======================= | 28%
|
|======================= | 29%
|
|======================== | 30%
|
|========================= | 31%
|
|========================== | 32%
|
|========================== | 33%
|
|=========================== | 33%
|
|=========================== | 34%
|
|============================ | 35%
|
|============================= | 36%
|
|============================== | 37%
|
|============================== | 38%
|
|=============================== | 38%
|
|=============================== | 39%
|
|================================ | 40%
|
|================================= | 41%
|
|================================== | 42%
|
|================================== | 43%
|
|=================================== | 43%
|
|=================================== | 44%
|
|==================================== | 44%
|
|==================================== | 45%
|
|===================================== | 46%
|
|====================================== | 47%
|
|====================================== | 48%
|
|======================================= | 48%
|
|======================================= | 49%
|
|======================================== | 49%
|
|======================================== | 50%
|
|======================================== | 51%
|
|========================================= | 51%
|
|========================================= | 52%
|
|========================================== | 52%
|
|========================================== | 53%
|
|=========================================== | 54%
|
|============================================ | 55%
|
|============================================ | 56%
|
|============================================= | 56%
|
|============================================= | 57%
|
|============================================== | 57%
|
|============================================== | 58%
|
|=============================================== | 59%
|
|================================================ | 60%
|
|================================================= | 61%
|
|================================================= | 62%
|
|================================================== | 62%
|
|================================================== | 63%
|
|=================================================== | 64%
|
|==================================================== | 65%
|
|===================================================== | 66%
|
|===================================================== | 67%
|
|====================================================== | 67%
|
|====================================================== | 68%
|
|======================================================= | 69%
|
|======================================================== | 70%
|
|========================================================= | 71%
|
|========================================================= | 72%
|
|========================================================== | 72%
|
|========================================================== | 73%
|
|=========================================================== | 73%
|
|=========================================================== | 74%
|
|============================================================ | 75%
|
|============================================================= | 76%
|
|============================================================= | 77%
|
|============================================================== | 77%
|
|============================================================== | 78%
|
|=============================================================== | 78%
|
|=============================================================== | 79%
|
|================================================================ | 80%
|
|================================================================= | 81%
|
|================================================================== | 82%
|
|================================================================== | 83%
|
|=================================================================== | 83%
|
|=================================================================== | 84%
|
|==================================================================== | 85%
|
|===================================================================== | 86%
|
|====================================================================== | 87%
|
|====================================================================== | 88%
|
|======================================================================= | 88%
|
|======================================================================= | 89%
|
|======================================================================== | 90%
|
|========================================================================= | 91%
|
|========================================================================== | 92%
|
|========================================================================== | 93%
|
|=========================================================================== | 93%
|
|=========================================================================== | 94%
|
|============================================================================ | 94%
|
|============================================================================ | 95%
|
|============================================================================= | 96%
|
|============================================================================== | 97%
|
|============================================================================== | 98%
|
|=============================================================================== | 98%
|
|=============================================================================== | 99%
|
|================================================================================| 99%
|
|================================================================================| 100%
[1] "Scaling data matrix"
|
| | 0%
|
|==========================================================================================| 100%
subtiss <- FindVariableGenes(object = subtiss, do.plot = TRUE, x.high.cutoff = Inf, y.cutoff = 0.8)
Calculating gene means
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating gene variance to mean ratios
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
**************************************************|
subtiss <- RunPCA(object = subtiss, pcs.compute = 20, weight.by.var = F)
[1] "PC1"
[1] "Gsn" "Fbln1" "Pi16" "Entpd2" "Lbp"
[6] "Fxyd5" "Crip2" "Sparcl1" "Plxdc2" "Col14a1"
[11] "Arap1" "Asz1" "Cd34" "Efna5" "Osr1"
[16] "Fxyd6" "Spon2" "Actg1" "Gm973" "Ifi27l2a"
[21] "Hsd11b1" "Serpina3n" "Inmt" "Fmo1" "C4b"
[26] "1810041L15Rik" "Hspa1a" "Cyp2e1" "Ednrb" "Akap12"
[1] ""
[1] "Myl9" "Ptgs2" "Plau" "Myh11" "Gatm"
[6] "Acta2" "Pde4b" "Trib1" "Vcam1" "Nampt"
[11] "Pamr1" "Prss35" "Tagln" "Procr" "Mt1"
[16] "Ldha" "Ereg" "Tnfsf9" "Cish" "Tnfaip3"
[21] "Gpnmb" "Niacr1" "Ccnd2" "Cebpd" "Rab20"
[26] "Rbp4" "Sept4" "1810011O10Rik" "Nfkbia" "Iigp1"
[1] ""
[1] ""
[1] "PC2"
[1] "Tuba1c" "Ifrd1" "Sparcl1" "Gfpt2" "Ugdh" "Scara5" "Mat2a"
[8] "Metrnl" "Nop58" "Cish" "Chodl" "Gpr133" "Pi16" "Cebpd"
[15] "Nr4a2" "Nfkbia" "Cd55" "Myc" "Hk2" "Errfi1" "Tnfrsf12a"
[22] "Gadd45b" "Lbp" "Uap1" "Entpd2" "Il6" "Icam1" "Col14a1"
[29] "Bcl3" "Tubb6"
[1] ""
[1] "Rbp4" "Nprl2" "U2af1l4" "Ier2" "Avpr1a" "Tsc22d1" "Zfyve21"
[8] "Tmem204" "Zfp688" "Rnf181" "Cdk9" "Fbxo31" "Bub3" "Rchy1"
[15] "Tubg1" "Cdk5rap1" "Crnkl1" "Qrich1" "Wdr8" "Spin1" "Glipr2"
[22] "Ddx28" "Sept4" "Emilin1" "Mum1" "Ndp" "Ypel3" "Trim11"
[29] "Smyd2" "Rnf114"
[1] ""
[1] ""
[1] "PC3"
[1] "Irf2bp1" "Ide" "4921517L17Rik" "Ddx28" "Fam53c"
[6] "Nudt13" "Skiv2l2" "Fads1" "Usp21" "Musk"
[11] "H2-Aa" "Cnot6" "Neil1" "Pknox1" "E130308A19Rik"
[16] "Ddx17" "Zfp949" "Rpap3" "Dus2l" "Zfp523"
[21] "Gss" "Gabpb1" "Wdr53" "Gtf2h2" "Irf9"
[26] "Haus4" "Cenpl" "Qtrt1" "Mxi1" "Mum1"
[1] ""
[1] "Tlk2" "Ptk7" "Cdk5rap1" "Qrich1" "Rilpl1" "Yars2" "Crnkl1"
[8] "Rfxank" "Prep" "Fbxo11" "Gprasp1" "Nkd2" "Fmo5" "Prpf3"
[15] "Fbxo31" "Tmem41a" "Nprl2" "Dom3z" "Abcg1" "Pld2" "Zfp688"
[22] "Pgm5" "Parp3" "Eml3" "Med4" "Ecm2" "Pkdcc" "Dcxr"
[29] "Cstb" "Dgcr6"
[1] ""
[1] ""
[1] "PC4"
[1] "Gna11" "Blvrb" "1810063B07Rik" "A430005L14Rik" "Atf3"
[6] "Pdrg1" "Ier2" "Tmem222" "9130023H24Rik" "Tor2a"
[11] "Rchy1" "Bambi" "Arl4d" "Paqr5" "Bub3"
[16] "Aamp" "Ahrr" "Tsc22d1" "9430020K01Rik" "Ranbp3"
[21] "Anapc10" "Gmpr2" "Mrpl2" "Ypel3" "Bmp3"
[26] "Sumf2" "Txndc16" "Atpaf2" "Rtkn" "Mlycd"
[1] ""
[1] "Arhgap21" "Nacc2" "Cdk5rap1" "Rfxank" "Crnkl1"
[6] "Ptk7" "Arfgap2" "Mcmbp" "Rilpl1" "Rbmx"
[11] "Prep" "Ppil4" "Pcdhgc3" "Tlk2" "Map2k3"
[16] "Cnot6" "Nit2" "Neil1" "Pcsk5" "Fmo5"
[21] "Gprasp1" "H2-Aa" "Eml3" "Fads1" "Prpf3"
[26] "4921517L17Rik" "Lman2l" "Hyal2" "Nkd2" "Qrich1"
[1] ""
[1] ""
[1] "PC5"
[1] "Calcrl" "Dnaja1" "Ppp1r15a" "Spin1" "Plat"
[6] "Ece1" "Gsn" "Rbp4" "Lmna" "Sdc4"
[11] "Ptn" "Smad3" "Tspan8" "Cd14" "Cd1d1"
[16] "Gadd45b" "Tcp11l2" "Naaa" "Cxcl12" "Hspa1a"
[21] "2010011I20Rik" "Uap1" "Nfkbia" "Fmo2" "Fbln5"
[26] "Mpv17" "Arl8b" "Rabl3" "Hbegf" "2010002N04Rik"
[1] ""
[1] "Itih5" "Myl9" "Npy1r" "Mfap5" "Acta2"
[6] "Igfbp4" "Nhsl2" "Actg2" "Prss35" "Nsg1"
[11] "Glul" "Col8a1" "Mtch2" "Sqrdl" "Serpina3n"
[16] "Mgp" "Mcm7" "Lifr" "Tspan4" "Zfp259"
[21] "Top2a" "Slc9a3r2" "Arhgdib" "Rpap3" "Fnta"
[26] "Pomt2" "8430410A17Rik" "Mki67ip" "Acy1" "Ddx39"
[1] ""
[1] ""
subtiss <- ProjectPCA(object = subtiss, do.print = FALSE)
# If this fails for your subset, it may be that cells.use is more cells than you have left! Try reducing it.
PCHeatmap(object = subtiss, pc.use = 1:3, cells.use = 250, do.balanced = TRUE, label.columns = FALSE, num.genes = 12)
PCElbowPlot(object = subtiss)
# Set number of principal components.
sub.n.pcs = 5
# Set resolution
sub.res.used <- 1
subtiss <- FindClusters(object = subtiss, reduction.type = "pca", dims.use = 1:sub.n.pcs,
resolution = sub.res.used, ,print.output = 0, save.SNN = TRUE)
# If cells are too spread out, you can raise the perplexity. If you have few cells, try a lower perplexity (but never less than 10).
subtiss <- RunTSNE(object = subtiss, dims.use = 1:sub.n.pcs, seed.use = 10, perplexity=20)
# note that you can set do.label=T to help label individual clusters
TSNEPlot(object = subtiss, do.label = T)
TSNEPlot(object = subtiss, do.return = TRUE, group.by = "mouse.sex")
genes_to_check = c('Hhip','Dcn', 'Gli1','Gli2', 'Smo','Col1a1','Col8a1')
#genes_to_check = c('Alb', 'Cyp2f2', 'Cyp2e1', 'Hamp')
FeaturePlot(subtiss, genes_to_check, pt.size = 1, nCol = 3)
VlnPlot(subtiss, genes_to_check)
clust.markers <- FindMarkers(object = subtiss, ident.1 = 0, only.pos = TRUE, min.pct = 0.25, thresh.use = 0.25)
| | 0 % ~calculating
|+ | 1 % ~02s
|++ | 3 % ~02s
|++ | 4 % ~01s
|+++ | 5 % ~01s
|++++ | 6 % ~01s
|++++ | 8 % ~01s
|+++++ | 9 % ~01s
|++++++ | 10% ~01s
|++++++ | 11% ~01s
|+++++++ | 13% ~01s
|+++++++ | 14% ~01s
|++++++++ | 15% ~01s
|+++++++++ | 16% ~01s
|+++++++++ | 18% ~01s
|++++++++++ | 19% ~01s
|+++++++++++ | 20% ~01s
|+++++++++++ | 22% ~01s
|++++++++++++ | 23% ~01s
|+++++++++++++ | 24% ~01s
|+++++++++++++ | 25% ~01s
|++++++++++++++ | 27% ~01s
|++++++++++++++ | 28% ~01s
|+++++++++++++++ | 29% ~01s
|++++++++++++++++ | 30% ~01s
|++++++++++++++++ | 32% ~01s
|+++++++++++++++++ | 33% ~01s
|++++++++++++++++++ | 34% ~01s
|++++++++++++++++++ | 35% ~01s
|+++++++++++++++++++ | 37% ~01s
|+++++++++++++++++++ | 38% ~01s
|++++++++++++++++++++ | 39% ~01s
|+++++++++++++++++++++ | 41% ~01s
|+++++++++++++++++++++ | 42% ~01s
|++++++++++++++++++++++ | 43% ~01s
|+++++++++++++++++++++++ | 44% ~01s
|+++++++++++++++++++++++ | 46% ~01s
|++++++++++++++++++++++++ | 47% ~01s
|+++++++++++++++++++++++++ | 48% ~01s
|+++++++++++++++++++++++++ | 49% ~01s
|++++++++++++++++++++++++++ | 51% ~01s
|++++++++++++++++++++++++++ | 52% ~01s
|+++++++++++++++++++++++++++ | 53% ~01s
|++++++++++++++++++++++++++++ | 54% ~01s
|++++++++++++++++++++++++++++ | 56% ~01s
|+++++++++++++++++++++++++++++ | 57% ~01s
|++++++++++++++++++++++++++++++ | 58% ~01s
|++++++++++++++++++++++++++++++ | 59% ~01s
|+++++++++++++++++++++++++++++++ | 61% ~01s
|++++++++++++++++++++++++++++++++ | 62% ~01s
|++++++++++++++++++++++++++++++++ | 63% ~01s
|+++++++++++++++++++++++++++++++++ | 65% ~01s
|+++++++++++++++++++++++++++++++++ | 66% ~01s
|++++++++++++++++++++++++++++++++++ | 67% ~01s
|+++++++++++++++++++++++++++++++++++ | 68% ~00s
|+++++++++++++++++++++++++++++++++++ | 70% ~00s
|++++++++++++++++++++++++++++++++++++ | 71% ~00s
|+++++++++++++++++++++++++++++++++++++ | 72% ~00s
|+++++++++++++++++++++++++++++++++++++ | 73% ~00s
|++++++++++++++++++++++++++++++++++++++ | 75% ~00s
|++++++++++++++++++++++++++++++++++++++ | 76% ~00s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~00s
|++++++++++++++++++++++++++++++++++++++++ | 78% ~00s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~00s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~00s
|++++++++++++++++++++++++++++++++++++++++++ | 82% ~00s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~00s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 02s
clust.markers
clust.markersuro <- FindMarkers(object = subtiss, ident.1 = 0, only.pos = TRUE, min.pct = 0.25, thresh.use = 0.25)
| | 0 % ~calculating
|+ | 1 % ~01s
|++ | 3 % ~01s
|++ | 4 % ~01s
|+++ | 5 % ~01s
|++++ | 6 % ~01s
|++++ | 8 % ~01s
|+++++ | 9 % ~01s
|++++++ | 10% ~01s
|++++++ | 11% ~01s
|+++++++ | 13% ~01s
|+++++++ | 14% ~01s
|++++++++ | 15% ~01s
|+++++++++ | 16% ~01s
|+++++++++ | 18% ~01s
|++++++++++ | 19% ~01s
|+++++++++++ | 20% ~01s
|+++++++++++ | 22% ~01s
|++++++++++++ | 23% ~01s
|+++++++++++++ | 24% ~01s
|+++++++++++++ | 25% ~01s
|++++++++++++++ | 27% ~01s
|++++++++++++++ | 28% ~01s
|+++++++++++++++ | 29% ~01s
|++++++++++++++++ | 30% ~01s
|++++++++++++++++ | 32% ~01s
|+++++++++++++++++ | 33% ~01s
|++++++++++++++++++ | 34% ~01s
|++++++++++++++++++ | 35% ~01s
|+++++++++++++++++++ | 37% ~01s
|+++++++++++++++++++ | 38% ~01s
|++++++++++++++++++++ | 39% ~01s
|+++++++++++++++++++++ | 41% ~01s
|+++++++++++++++++++++ | 42% ~01s
|++++++++++++++++++++++ | 43% ~01s
|+++++++++++++++++++++++ | 44% ~01s
|+++++++++++++++++++++++ | 46% ~01s
|++++++++++++++++++++++++ | 47% ~01s
|+++++++++++++++++++++++++ | 48% ~01s
|+++++++++++++++++++++++++ | 49% ~01s
|++++++++++++++++++++++++++ | 51% ~01s
|++++++++++++++++++++++++++ | 52% ~01s
|+++++++++++++++++++++++++++ | 53% ~01s
|++++++++++++++++++++++++++++ | 54% ~01s
|++++++++++++++++++++++++++++ | 56% ~01s
|+++++++++++++++++++++++++++++ | 57% ~01s
|++++++++++++++++++++++++++++++ | 58% ~01s
|++++++++++++++++++++++++++++++ | 59% ~01s
|+++++++++++++++++++++++++++++++ | 61% ~01s
|++++++++++++++++++++++++++++++++ | 62% ~01s
|++++++++++++++++++++++++++++++++ | 63% ~01s
|+++++++++++++++++++++++++++++++++ | 65% ~01s
|+++++++++++++++++++++++++++++++++ | 66% ~01s
|++++++++++++++++++++++++++++++++++ | 67% ~01s
|+++++++++++++++++++++++++++++++++++ | 68% ~00s
|+++++++++++++++++++++++++++++++++++ | 70% ~00s
|++++++++++++++++++++++++++++++++++++ | 71% ~00s
|+++++++++++++++++++++++++++++++++++++ | 72% ~00s
|+++++++++++++++++++++++++++++++++++++ | 73% ~00s
|++++++++++++++++++++++++++++++++++++++ | 75% ~00s
|++++++++++++++++++++++++++++++++++++++ | 76% ~00s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~00s
|++++++++++++++++++++++++++++++++++++++++ | 78% ~00s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~00s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~00s
|++++++++++++++++++++++++++++++++++++++++++ | 82% ~00s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~00s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 02s
clust.markersuro
GenePlot(subtiss, 'Upk3a', 'Krt14', use.raw = T)
the standard deviation is zero
BuildClusterTree(subtiss)
[1] "Finished averaging RNA for cluster 0"
[1] "Finished averaging RNA for cluster 1"
[1] "Finished averaging RNA for cluster 2"
[1] "Finished averaging RNA for cluster 3"
An object of class seurat in project Bladder
16192 genes across 170 samples.
VlnPlot(subtiss, genes_to_check)
Later on (in FindClusters and TSNE) you will pick a number of principal components to use. This has the effect of keeping the major directions of variation in the data and, ideally, supressing noise. There is no correct answer to the number to use, but a decent rule of thumb is to go until the plot plateaus.
Check expression of genes of interset.
genes_to_check = c('Btg2','Sgk1','Jun','Srsf2')
FeaturePlot(subtiss, genes_to_check, pt.size = 1)
Dotplots let you see the intensity of exppression and the fraction of cells expressing for each of your genes of interest.
# To change the y-axis to show raw counts, add use.raw = T.
DotPlot(subtiss, genes_to_check, plot.legend = T)
How big are the clusters?
table(subtiss@ident)
0 1 2 3
57 48 43 22
Color by metadata, like plate barcode, to check for batch effects.
TSNEPlot(object = subtiss, do.return = TRUE, group.by = "plate.barcode")
Print a table showing the count of cells in each identity category from each plate.
table(as.character(subtiss@ident), as.character(subtiss@meta.data$plate.barcode))
B000610 B002764 B002771 D041914 D042253 MAA000487
0 15 0 5 35 1 1
1 3 1 0 42 1 1
2 38 0 5 0 0 0
3 2 0 0 20 0 0
So that Biohub can easily combine all your annotations, please export them as a simple csv.
filename = here('00_data_ingest', 'tissue_annotation_csv',
paste0(tissue_of_interest, "_annotation.csv"))
write.csv(tiss@meta.data[,c('plate.barcode','annotation','cell_ontology_id')], file=filename)